package com.hanrui.android.di.component;

import android.app.Activity;
import android.content.Context;

import com.hanrui.android.activity.AddressListActivity;
import com.hanrui.android.activity.LoginActivity;
import com.hanrui.android.activity.MainActivity;
import com.hanrui.android.activity.message.AuditActivity;
import com.hanrui.android.activity.message.GoBackActivity;
import com.hanrui.android.activity.message.MyPerformanceActivity;
import com.hanrui.android.activity.message.ReceiptDocListActivity;
import com.hanrui.android.activity.message.audit.NoticeDetailActivity;
import com.hanrui.android.activity.message.audit.VoteDetailActivity;
import com.hanrui.android.activity.message.meet.MeetingDetailActivity;
import com.hanrui.android.activity.message.supervise.SuperviseMonthDetailActivity;
import com.hanrui.android.activity.message.supervise.SuperviseMonthListActivity;
import com.hanrui.android.activity.message.supervise.SuperviseWeekDetailActivity;
import com.hanrui.android.activity.message.supervise.SuperviseWeekhListActivity;
import com.hanrui.android.activity.mine.AddBillActivity;
import com.hanrui.android.activity.mine.BillDetailActivity;
import com.hanrui.android.activity.mine.BillHelperActivity;
import com.hanrui.android.activity.performance.PerformDetailActivity;
import com.hanrui.android.activity.work.ArchivesCheckActivity;
import com.hanrui.android.activity.work.ArchivesCheckDetailActivity;
import com.hanrui.android.di.module.ActivityModule;
import com.hanrui.android.di.scope.ContextLife;
import com.hanrui.android.di.scope.PerActivity;

import dagger.Component;

/**
 * Created by lw on 2017/1/19.
 */
@PerActivity
@Component(dependencies = ApplicationComponent.class, modules = ActivityModule.class)
public interface ActivityComponent {

    @ContextLife("Activity")
    Context getActivityContext();

    @ContextLife("Application")
    Context getApplicationContext();

    Activity getActivity();

    void inject(LoginActivity activity);

    void inject(AddressListActivity activity);

    void inject(AuditActivity activity);

    void inject(SuperviseMonthListActivity activity);

    void inject(SuperviseWeekhListActivity activity);

    void inject(SuperviseWeekDetailActivity activity);

    void inject(SuperviseMonthDetailActivity activity);

    void inject(NoticeDetailActivity activity);

    void inject(MyPerformanceActivity activity);

    void inject(PerformDetailActivity activity);

    void inject(VoteDetailActivity activity);

    void inject(MeetingDetailActivity activity);

    void inject(ReceiptDocListActivity activity);

    void inject(GoBackActivity activity);

    void inject(ArchivesCheckActivity activity);

    void inject(ArchivesCheckDetailActivity activity);

    void inject(BillHelperActivity activity);

    void inject(AddBillActivity activity);

    void inject(BillDetailActivity activity);

    void inject(MainActivity activity);
}
